import java.util.ArrayList;
import java.util.Collection;
import java.util.Arrays;
import java.util.Map;
import java.util.HashMap;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 74646
 * Date: 2022-02-20
 * Time: 8:46
 */
public class TestDemo1 {


    public static void main3(String[] args) {
        //k的类型：String v的类型：String
        Map<String, String> map = new HashMap<>();
        System.out.println(map.size()); //元素个数，当前没有存放元素
        System.out.println(map.isEmpty()); //判断集合是否为空，当前为空，返回true
        System.out.println(map.get("作者")); //根据k查找对应的v，找不到就返回默认值，String类型的默认值为null
        System.out.println(map.getOrDefault("作者", "佚名")); //根据k查找对应的v，如果没有k就会返回defaultValue的内容（"佚名"）
        System.out.println(map.containsKey("作者")); //判断是否包含k，此时没有k（"作者"）
        System.out.println(map.containsValue("佚名")); //判断是否包含v，此时没有v（"佚名"）
        map.put("作者", "鲁迅"); //放元素
        map.put("标题", "狂人日记");
        map.put("发表时间", "1918年");
        System.out.println(map.size()); //元素个数
        System.out.println(map.isEmpty()); //判断是否为空
        System.out.println(map.get("作者")); //根据k查找对应的v
        System.out.println(map.getOrDefault("作者", "佚名")); //根据k查找对应的v，如果有k就会返回k对应的v（此时"作者"对应"鲁迅"）
        System.out.println(map.containsKey("作者")); //判断是否包含k，此时有k（"作者"）
        System.out.println(map.containsValue("佚名")); //判断是否包含v，此时没有v（"佚名"）
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey()); //返回所有的键值对
            System.out.println(entry.getValue());
        }
    }
    public static void main2(String[] args) {
        //只能存放String类型的数据
        Collection<String> list = new ArrayList<>();
        System.out.println(list.size()); //元素个数，当前没有存放元素
        System.out.println(list.isEmpty()); //判断集合是否为空，当前集合为空，返回true
        list.add("我");
        list.add("爱");
        list.add("Java");
        System.out.println(list.size()); //元素个数，3
        System.out.println(list.isEmpty()); //判断集合是否为空，当前集合为有元素
        Object[] array = list.toArray();
        System.out.println(Arrays.toString(array)); //打印元素
        for (String s : list) {
            System.out.println(s); //打印每一个元素
        }
        list.remove("爱"); //移除一个元素
        for (String s : list) {
            System.out.println(s); //打印每一个元素
        }
        list.clear(); //删除集合中所有的元素
        System.out.println(list.size()); //此时集合中没有元素
        System.out.println(list.isEmpty()); //判断集合是否为空，此时集合为空，返回true
    }
    public static void main1(String[] args) {
        //使用<>指定了某一个数据类型，那么add()方法中只能放对应的数据类型
        //第二个<>中的内容可以省略，但是尖括号不可以省略
        Collection<String> collection = new ArrayList<String>();
        collection.add("hello");
        //<>中只能放引用数据类型，不能放基本数据类型
        //基本数据类型只能放对应的包装类
        Collection<Integer> collection1 = new ArrayList<>();
        collection1.add(2);
    }
}
